package com.rockcent.mall.lib.dto;

import com.rockcent.common.domain.DtoEntity;
import com.rockcent.mall.lib.domain.enumclass.PaymentMethod;
import com.rockcent.mall.lib.domain.enumclass.MallOrderPaymentStatus;

import java.math.BigDecimal;
import java.util.Date;

public class MallOrderPaymentDto extends DtoEntity{

    //支付号
    private String paymentNum;
    //客户 id
    private Long customerId;
    //外部交易号
    private String paymentTransaction;
    //支付完成时间
    private Date paymentFinishDate;
    //支付方式
    private PaymentMethod paymentMethod;
    //平台 id
    private Long mallId;
    //平台订单号
    private String mallOrderNum;
    //平台订单id
    private Long mallOrderId;
    //金额
    private BigDecimal amount;
    //支付状态
    private MallOrderPaymentStatus status = MallOrderPaymentStatus.WAIT;
    // 平台订单支付流水号
    private String mallOrderPaymentFlowNum;
    // 模拟支付回调 密码
    private Long password;
    /**
     * 订单来源，WXAPP:微信小程序；WEXIN:公众号H5
     */
    private String orderSource;
    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public String getPaymentTransaction() {
        return paymentTransaction;
    }

    public void setPaymentTransaction(String paymentTransaction) {
        this.paymentTransaction = paymentTransaction;
    }

    public Date getPaymentFinishDate() {
        return paymentFinishDate;
    }

    public void setPaymentFinishDate(Date paymentFinishDate) {
        this.paymentFinishDate = paymentFinishDate;
    }

    public PaymentMethod getPaymentMethod() {
        return paymentMethod;
    }

    public void setPaymentMethod(PaymentMethod paymentMethod) {
        this.paymentMethod = paymentMethod;
    }

    public Long getMallId() {
        return mallId;
    }

    public void setMallId(Long mallId) {
        this.mallId = mallId;
    }

    public String getMallOrderNum() {
        return mallOrderNum;
    }

    public void setMallOrderNum(String mallOrderNum) {
        this.mallOrderNum = mallOrderNum;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Long getMallOrderId() {
        return mallOrderId;
    }

    public void setMallOrderId(Long mallOrderId) {
        this.mallOrderId = mallOrderId;
    }

    public MallOrderPaymentStatus getStatus() {
        return status;
    }

    public void setStatus(MallOrderPaymentStatus status) {
        this.status = status;
    }

    public String getPaymentNum() {
        return paymentNum;
    }

    public void setPaymentNum(String paymentNum) {
        this.paymentNum = paymentNum;
    }

    public Long getPassword() {
        return password;
    }

    public void setPassword(Long password) {
        this.password = password;
    }

    public String getMallOrderPaymentFlowNum() {
        return mallOrderPaymentFlowNum;
    }

    public void setMallOrderPaymentFlowNum(String mallOrderPaymentFlowNum) {
        this.mallOrderPaymentFlowNum = mallOrderPaymentFlowNum;
    }

    public String getOrderSource() {
        return orderSource;
    }

    public void setOrderSource(String orderSource) {
        this.orderSource = orderSource;
    }

    @Override
    public String toString() {
        return "MallOrderPaymentDto{" +
                "paymentNum='" + paymentNum + '\'' +
                ", customerId=" + customerId +
                ", paymentTransaction='" + paymentTransaction + '\'' +
                ", paymentFinishDate=" + paymentFinishDate +
                ", paymentMethod=" + paymentMethod +
                ", mallId=" + mallId +
                ", mallOrderNum='" + mallOrderNum + '\'' +
                ", mallOrderId=" + mallOrderId +
                ", amount=" + amount +
                ", status=" + status +
                ", mallOrderPaymentFlowNum='" + mallOrderPaymentFlowNum + '\'' +
                ", password=" + password +
                ", orderSource='" + orderSource + '\'' +
                '}';
    }
}